#ifndef _YY_H_
#define _YY_H_

#include "Common.h"

class YY
{
public:
	static tstring RandString()
	{
		TCHAR szBuf[16];
		srand( (UINT)time(0) );
		int iLen = rand() % 10 + 1;
		int i;
		for(i=0;i<iLen;i++)
		{
			szBuf[i] = rand() % 26 + 'a';
		}
		szBuf[iLen] = (TCHAR)'\0';
		return szBuf;
	}
	static int U2A(const WCHAR *wszStr,CHAR *szStr,int iMaxlen)
	{
		WideCharToMultiByte(
			CP_ACP,
			WC_COMPOSITECHECK,
			wszStr,
			-1,
			szStr,
			iMaxlen,
			NULL,
			NULL
			);
		return 0;
	}
	static int A2U(const CHAR *szStr,WCHAR *wszStr,int iMaxlen)
	{
		MultiByteToWideChar(
			CP_ACP,
			0,
			szStr,
			-1,
			wszStr,
			iMaxlen
			);
		return 0;
	}
	static tstring LowCase(tstring tsStr)
	{
		size_t i;
		for(i=0;i<tsStr.length();i++)
		{
			if( tsStr[i] >= (TCHAR)'A' && tsStr[i] <= (TCHAR)'Z' )
			{
				tsStr[i] = tsStr[i] - 'A' + 'a';
			}
		}
		return tsStr;
	}
	static tstring MakeString(INT iV)
	{
		TCHAR szText[128];
		_stprintf(szText,_TEXT("%d"),iV);
		return szText;
	}
	static tstring MakeString(UINT uV)
	{
		TCHAR szText[128];
		_stprintf(szText,_TEXT("%u"),uV);
		return szText;
	}

	static tstring MakeString(LONG iV)
	{
		TCHAR szText[128];
		_stprintf(szText,_TEXT("%ld"),iV);
		return szText;
	}

	static tstring MakeString(ULONG uV)
	{
		TCHAR szText[128];
		_stprintf(szText,_TEXT("%lu"),uV);
		return szText;
	}

	static tstring MakeString(INT64 iV)
	{
		TCHAR szText[128];
		_stprintf(szText,_TEXT("%I64d"),iV);
		return szText;
	}

	static tstring MakeString(UINT64 uV)
	{
		TCHAR szText[128];
		_stprintf(szText,_TEXT("%I64u"),uV);
		return szText;
	}
};
#endif